Instalando y configurando Docker en Debian Jessie

Instalando y configurando Docker en Debian Jessie

Instalamos Debian 8.6 Jessie  en una máquina virtual (VM) usando la ISO netinstall. La VM tiene asignada 1GB de RAM, 10GB de disco y la interfaz de red está en modo bridged, de manera que tiene acceso a internet a través del router de casa, de donde obtiene una dirección IP por DHCP.

Además del sistema operativo, únicamente hay instalado el servidor SSH.

En el sistema tenemos dos usuarios,  el usuario root y un usuario sin privilegios al que hemos llamado operador.

Para la instalación de Docker en el el equipo seguimos la Guía oficial de instalación de Docker en  Debian 8.0 Jessie
Accedemos al sistema mediante el usuario no privilegiado (el usuario root no puede acceder remotamente con la configuración por defecto de SSH).

Una vez hemos iniciado sesión con el usuario operador, lanzamos su para convertirnos en el usuario root.

Verificando los pre-requisitos

Docker sólo puede ser instalado en equipos 64bits con un kernel 3.10 o superior.

Para verificar que la versión instalada de Debian instalada verifica estos requisitos, ejecutamos:

# uname -r
3.16.0-4-amd64

Actualizando el repositorio apt


  • Purgamos el repositorio:

   # apt-get purge "lxc-docker*"
   Reading package lists... Done
   Building dependency tree
   Reading state information... Done
   E: Unable to locate package lxc-docker*
   E: Couldn't find any package by regex 'lxc-docker*'

   # apt-get purge "docker.io*"
   Reading package lists... Done
   Building dependency tree
   Reading state information... Done
   Note, selecting 'docker.io' for regex 'docker.io*'
   Package 'docker.io' is not installed, so not removed
   0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

   Vemos que en nuestro caso no tenemos versiones antiguas de los paquetes relacionados con Docker.

  • Actualizamos # apt-get update
  • Nos aseguramos que apt funcione correctamente a través de https, instalando los paquetes y los certificados necesarios: # apt-get install apt-transport-https ca-certificates
  • Añadimos la clave GPG: # $ apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
  • Abrimos el fichero /etc/apt/sources.list.d/docker.list. Si no existe, lo creamos.
  • Añadimos la línea deb https://apt.dockerproject.org/repo debian-jessie main
  • Guardamos el fichero y lanzamos una actualización mediante # apt-get update
  • Verificamos que apt está obteniendo los paquetes del repositorio correcto: # apt-cache policy docker-engine

# apt-cache policy docker-engine
docker-engine:
  Installed: (none)
  Candidate: 1.12.2-0~jessie
  Version table:
     1.12.2-0~jessie 0
        500 https://apt.dockerproject.org/repo/ debian-jessie/main amd64 Packages
...

Instalando Docker

Como ya hemos añadido y configurado los repositorios en los que se encuentra disponible Docker, instalamos de forma habitual:

# apt-get update
# apt-get install docker-engine

Una vez instalado, arrancamos el servicio de Docker: # service docker start.

Para verificar que Docker está arrancado, ejecuta docker version:

# docker version
Client:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:        Tue Oct 11 17:43:41 2016
 OS/Arch:      linux/amd64

Server:
 Version:      1.12.2
 API version:  1.24
 Go version:   go1.6.3
 Git commit:   bb80604
 Built:        Tue Oct 11 17:43:41 2016
 OS/Arch:      linux/amd64

Dando acceso a Docker a un usuario sin privilegios

El demonio docker se ejecuta como usuario root, por lo que para poder gestionar Docker, necesitas permisos de root (normalmente usando elevación de permisos mediante  sudo).

Puedes crear un grupo llamado docker y añadir usuarios sin privilegios a este grupo. Esto permite que los usuarios sin privilegios de root puedan ejecutar  Docker, aunque al ser un grupo con permisos equivalentes, supone un riesgo de seguridad.

  • Crea el grupo docker mediante: # groupadd docker (puede que se haya creado durante la instalación)

# groupadd docker
groupadd: group 'docker' already exists

  • Agrega al (los) usuario(s) sin privilegios al grupo. En nuestro caso, el usuario sin privilegios es el usuario operador

# gpasswd -a operador docker
Adding user operador to group docker

El usuario operador debe iniciar sesión de nuevo para que los cambios tengan efecto.

  • Reinicia el demonio Docker: systemctl restart docker.

Resumen

Al finalizar los pasos descritos en este documento, tendrás Docker correctamente instalado y accesible para un usuario sin privilegios del sistema.

Comentarios